home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 June / PersonalComputerWorld-June2009-CoverdiscCD.iso / Software / Freeware / Adobe AIR 1.5.1 / AdobeAIRInstaller.exe / setup.swf / scripts / mx / containers / GridRow.as < prev    next >
Encoding:
Text File  |  2009-02-12  |  8.9 KB  |  252 lines

  1. package mx.containers
  2. {
  3.    import flash.display.DisplayObject;
  4.    import mx.containers.gridClasses.GridColumnInfo;
  5.    import mx.containers.gridClasses.GridRowInfo;
  6.    import mx.containers.utilityClasses.Flex;
  7.    import mx.core.EdgeMetrics;
  8.    import mx.core.ScrollPolicy;
  9.    import mx.core.mx_internal;
  10.    
  11.    use namespace mx_internal;
  12.    
  13.    public class GridRow extends HBox
  14.    {
  15.       mx_internal static const VERSION:String = "3.0.0.0";
  16.       
  17.       internal var rowIndex:int = 0;
  18.       
  19.       internal var columnWidths:Array;
  20.       
  21.       internal var rowHeights:Array;
  22.       
  23.       internal var numGridItems:int;
  24.       
  25.       public function GridRow()
  26.       {
  27.          super();
  28.          super.clipContent = false;
  29.       }
  30.       
  31.       override public function getStyle(param1:String) : *
  32.       {
  33.          return param1 == "horizontalGap" && Boolean(parent) ? Grid(parent).getStyle("horizontalGap") : super.getStyle(param1);
  34.       }
  35.       
  36.       override public function invalidateDisplayList() : void
  37.       {
  38.          super.invalidateDisplayList();
  39.          if(parent)
  40.          {
  41.             Grid(parent).invalidateDisplayList();
  42.          }
  43.       }
  44.       
  45.       override public function get clipContent() : Boolean
  46.       {
  47.          return false;
  48.       }
  49.       
  50.       override public function set horizontalScrollPolicy(param1:String) : void
  51.       {
  52.       }
  53.       
  54.       override public function set clipContent(param1:Boolean) : void
  55.       {
  56.       }
  57.       
  58.       internal function doRowLayout(param1:Number, param2:Number) : void
  59.       {
  60.          var _loc8_:GridItem = null;
  61.          var _loc9_:int = 0;
  62.          var _loc10_:Number = NaN;
  63.          var _loc11_:Number = NaN;
  64.          var _loc12_:Number = NaN;
  65.          var _loc13_:int = 0;
  66.          var _loc14_:GridColumnInfo = null;
  67.          var _loc15_:Number = NaN;
  68.          var _loc16_:int = 0;
  69.          var _loc17_:GridRowInfo = null;
  70.          var _loc18_:Number = NaN;
  71.          var _loc19_:Number = NaN;
  72.          layoutChrome(param1,param2);
  73.          var _loc3_:Number = numChildren;
  74.          if(_loc3_ == 0)
  75.          {
  76.             return;
  77.          }
  78.          var _loc4_:Boolean = Boolean(mx_internal::invalidateSizeFlag);
  79.          var _loc5_:Boolean = Boolean(mx_internal::invalidateDisplayListFlag);
  80.          mx_internal::invalidateSizeFlag = true;
  81.          mx_internal::invalidateDisplayListFlag = true;
  82.          if(parent.getChildIndex(this) == 0 || isNaN(columnWidths[0].x) || columnWidths.minWidth != minWidth || columnWidths.maxWidth != maxWidth || columnWidths.preferredWidth != getExplicitOrMeasuredWidth() || columnWidths.percentWidth != percentWidth || columnWidths.width != param1 || columnWidths.paddingLeft != getStyle("paddingLeft") || columnWidths.paddingRight != getStyle("paddingRight") || columnWidths.horizontalAlign != getStyle("horizontalAlign") || columnWidths.borderStyle != getStyle("borderStyle"))
  83.          {
  84.             calculateColumnWidths();
  85.             columnWidths.minWidth = minWidth;
  86.             columnWidths.maxWidth = maxWidth;
  87.             columnWidths.preferredWidth = getExplicitOrMeasuredWidth();
  88.             columnWidths.percentWidth = percentWidth;
  89.             columnWidths.width = param1;
  90.             columnWidths.paddingLeft = getStyle("paddingLeft");
  91.             columnWidths.paddingRight = getStyle("paddingRight");
  92.             columnWidths.horizontalAlign = getStyle("horizontalAlign");
  93.             columnWidths.borderStyle = getStyle("borderStyle");
  94.          }
  95.          var _loc6_:EdgeMetrics = viewMetricsAndPadding;
  96.          var _loc7_:int = 0;
  97.          while(_loc7_ < _loc3_)
  98.          {
  99.             _loc8_ = GridItem(getChildAt(_loc7_));
  100.             _loc9_ = _loc8_.colIndex;
  101.             _loc10_ = Number(columnWidths[_loc9_].x);
  102.             _loc11_ = _loc6_.top;
  103.             _loc12_ = _loc8_.percentHeight;
  104.             _loc13_ = Math.min(_loc9_ + _loc8_.colSpan,columnWidths.length);
  105.             _loc14_ = columnWidths[_loc13_ - 1];
  106.             _loc15_ = _loc14_.x + _loc14_.width - _loc10_;
  107.             _loc16_ = Math.min(rowIndex + _loc8_.rowSpan,rowHeights.length);
  108.             _loc17_ = rowHeights[_loc16_ - 1];
  109.             _loc18_ = _loc17_.y + _loc17_.height - rowHeights[rowIndex].y - _loc6_.top - _loc6_.bottom;
  110.             _loc19_ = _loc15_ - _loc8_.maxWidth;
  111.             if(_loc19_ > 0)
  112.             {
  113.                _loc10_ += _loc19_ * mx_internal::layoutObject.mx_internal::getHorizontalAlignValue();
  114.                _loc15_ -= _loc19_;
  115.             }
  116.             _loc19_ = _loc18_ - _loc8_.maxHeight;
  117.             if(Boolean(_loc12_) && _loc12_ < 100)
  118.             {
  119.                _loc19_ = Math.max(_loc19_,_loc18_ * (100 - _loc12_));
  120.             }
  121.             if(_loc19_ > 0)
  122.             {
  123.                _loc11_ = _loc19_ * mx_internal::layoutObject.mx_internal::getVerticalAlignValue();
  124.                _loc18_ -= _loc19_;
  125.             }
  126.             _loc15_ = Math.ceil(_loc15_);
  127.             _loc18_ = Math.ceil(_loc18_);
  128.             _loc8_.move(_loc10_,_loc11_);
  129.             _loc8_.setActualSize(_loc15_,_loc18_);
  130.             _loc7_++;
  131.          }
  132.          mx_internal::invalidateSizeFlag = _loc4_;
  133.          mx_internal::invalidateDisplayListFlag = _loc5_;
  134.       }
  135.       
  136.       private function calculateColumnWidths() : void
  137.       {
  138.          var _loc5_:Number = NaN;
  139.          var _loc6_:GridColumnInfo = null;
  140.          var _loc7_:Number = NaN;
  141.          var _loc8_:int = 0;
  142.          var _loc11_:Number = NaN;
  143.          var _loc12_:Number = NaN;
  144.          var _loc13_:int = 0;
  145.          var _loc1_:EdgeMetrics = viewMetricsAndPadding;
  146.          var _loc2_:Number = getStyle("horizontalGap");
  147.          var _loc3_:int = int(columnWidths.length);
  148.          var _loc4_:Number = unscaledWidth - _loc1_.left - _loc1_.right - (_loc3_ - 1) * _loc2_;
  149.          var _loc9_:Number = 0;
  150.          var _loc10_:Array = [];
  151.          _loc5_ = _loc4_;
  152.          _loc8_ = 0;
  153.          while(_loc8_ < _loc3_)
  154.          {
  155.             _loc6_ = columnWidths[_loc8_];
  156.             _loc11_ = _loc6_.percent;
  157.             if(_loc11_)
  158.             {
  159.                _loc9_ += _loc11_;
  160.                _loc10_.push(_loc6_);
  161.             }
  162.             else
  163.             {
  164.                _loc12_ = _loc6_.width = _loc6_.preferred;
  165.                _loc5_ -= _loc12_;
  166.             }
  167.             _loc8_++;
  168.          }
  169.          if(_loc9_)
  170.          {
  171.             _loc5_ = Flex.flexChildrenProportionally(_loc4_,_loc5_,_loc9_,_loc10_);
  172.             _loc13_ = int(_loc10_.length);
  173.             _loc8_ = 0;
  174.             while(_loc8_ < _loc13_)
  175.             {
  176.                _loc6_ = _loc10_[_loc8_];
  177.                _loc6_.width = _loc6_.size;
  178.                _loc8_++;
  179.             }
  180.          }
  181.          _loc7_ = _loc1_.left + _loc5_ * mx_internal::layoutObject.mx_internal::getHorizontalAlignValue();
  182.          _loc8_ = 0;
  183.          while(_loc8_ < _loc3_)
  184.          {
  185.             _loc6_ = columnWidths[_loc8_];
  186.             _loc6_.x = _loc7_;
  187.             _loc7_ += _loc6_.width + _loc2_;
  188.             _loc8_++;
  189.          }
  190.       }
  191.       
  192.       override public function get horizontalScrollPolicy() : String
  193.       {
  194.          return ScrollPolicy.OFF;
  195.       }
  196.       
  197.       override public function invalidateSize() : void
  198.       {
  199.          super.invalidateSize();
  200.          if(parent)
  201.          {
  202.             Grid(parent).invalidateSize();
  203.          }
  204.       }
  205.       
  206.       internal function updateRowMeasurements() : void
  207.       {
  208.          var _loc6_:Number = NaN;
  209.          var _loc8_:GridColumnInfo = null;
  210.          var _loc1_:Number = columnWidths.length;
  211.          var _loc2_:Number = 0;
  212.          var _loc3_:Number = 0;
  213.          var _loc4_:int = 0;
  214.          while(_loc4_ < _loc1_)
  215.          {
  216.             _loc8_ = columnWidths[_loc4_];
  217.             _loc2_ += _loc8_.min;
  218.             _loc3_ += _loc8_.preferred;
  219.             _loc4_++;
  220.          }
  221.          var _loc5_:Number = Number(mx_internal::layoutObject.mx_internal::widthPadding(_loc1_));
  222.          _loc6_ = Number(mx_internal::layoutObject.mx_internal::heightPadding(0));
  223.          var _loc7_:GridRowInfo = rowHeights[rowIndex];
  224.          measuredMinWidth = _loc2_ + _loc5_;
  225.          measuredMinHeight = _loc7_.min + _loc6_;
  226.          measuredWidth = _loc3_ + _loc5_;
  227.          measuredHeight = _loc7_.preferred + _loc6_;
  228.       }
  229.       
  230.       override public function set verticalScrollPolicy(param1:String) : void
  231.       {
  232.       }
  233.       
  234.       override public function get verticalScrollPolicy() : String
  235.       {
  236.          return ScrollPolicy.OFF;
  237.       }
  238.       
  239.       override protected function updateDisplayList(param1:Number, param2:Number) : void
  240.       {
  241.       }
  242.       
  243.       override public function setChildIndex(param1:DisplayObject, param2:int) : void
  244.       {
  245.          super.setChildIndex(param1,param2);
  246.          Grid(parent).invalidateSize();
  247.          Grid(parent).invalidateDisplayList();
  248.       }
  249.    }
  250. }
  251.  
  252.